package com.nondo.dean.auth.service;

import com.nondo.dean.auth.domain.Menu;
import com.nondo.dean.common.web.Page;
import com.nondo.dean.common.web.Query;

import java.util.List;

public interface MenuService {

    /**
     * 根据菜单ID查询菜单信息
     *
     * @param parentId 菜单ID
     * @return 菜单信息
     */
    List<Menu> findByParentId(Long parentId);

    /**
     * 根据菜单ID查询菜单信息
     *
     * @param parentIds 菜单PATH
     * @return 菜单信息
     */
    List<Menu> findByParentIds(String parentIds);

    /**
     * 根据菜单ID查询菜单信息
     *
     * @param menuId 菜单ID
     * @return 菜单信息
     */
    Menu findByMenuId(Long menuId);

    /**
     * 根据菜单ID删除
     *
     * @param menuId 菜单ID
     */
    void deleteByMenuId(Long menuId);

    /**
     * 保存菜单
     *
     * @param menu 菜单
     */
    void saveAndUpdateMenu(Menu menu);

    /**
     * 查询所有的菜单
     *
     * @return 菜单 {@link Menu}
     */
    List<Menu> findAll();

    /**
     * 查询所有的菜单
     *
     * @return 菜单 {@link Menu}
     */
    Page<Menu> findPage(Query<Menu> menuQuery);

    /**
     * 查询菜单
     *
     * @param userId 用户编号
     * @return 菜单 {@link Menu}
     */
    List<Menu> findByUserId(Long userId);

}
